package com.atguigu.tingshu.user.service;

import com.atguigu.tingshu.model.user.UserInfo;
import com.atguigu.tingshu.vo.user.UserInfoVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

public interface UserInfoService extends IService<UserInfo> {
    /**
     * 小程序端提交临时凭据code，登录（调用微信接口获取微信账号唯一标识：openId）
     * @param code 临时凭据
     * @return 对象，登录登录成功后：token
     */
    Map<String, String> wxLogin(String code);

    /**
     * 获取登录用户信息
     * @param userId
     * @return
     */
    UserInfoVo getUserInfo(Long userId);


    /**
     * 更新用户信息
     * @param userId
     * @param userInfoVo
     */
    void updateUser(Long userId, UserInfoVo userInfoVo);

    /**
     * 根据用户ID查询用户信息
     * @param userId
     * @return
     */
    UserInfoVo getUserInfoVoById(Long userId);

    /**
     * 该接口提供给专辑服务，展示声音列表动态判断付费标识
     * 判断当前用户某一页中声音列表购买情况
     * @param userId
     * @param albumId
     * @param needChackTrackIdList 待检查购买情况当前专辑声音列表
     * @return data:{声音ID:购买结果} 结果:1(已购) 0(未购买)
     */
    Map<Long, Integer> userIsPaidTrack(Long userId, Long albumId, List<Long> needChackTrackIdList);
}
